Bitcoin and Cryptocurrency Technologies Week1
Introduction to Crypto and Cryptocurrencies
Welcome
Cryptographic Hash Functions
Hash function:
takes any string as input
fixed-size output
efficiently computable
Security properties:
collision-free
hiding
puzzle-friendly
Collision-free
同じ出力となる、異なる入力x, yをみつけることが非常に難しい、という性質
Possible inputs よりも possible outputs のほうが小さいので、衝突自体はおこる
Application: Hash as message digest
Hash property 2: Hiding
出力から、入力を推測することが難しい
Application: Commitment
Hash property 3: Puzzle-friendly
特定の y を出力する入力 x をみつけることが難しい
SHA-256 hash function
Hash Pointers and Data Structures
hash pointer
データ構造
hash pointer を利用して、
ask to get the info back
verify that it hasn't changed
build data structures with hash pointers
通常の pointer の代わりに hash pointer を使用する
detecting tampering
Merkle tree
binary tree with hash pointers
多くのデータを、短い時間で verify することができる
membership prove
Digital Signatures
API for digital signatures
sk, pk
Requirement for signatures
署名を認証できる必要がある
Can't forge
challenger と attacker を想定
実際には、メッセージのハッシュに対して署名をする
hash pointer に対する署名
ECDSA
Public Keys as Identities
誰でも好きなだけ自分の identity をつくることができる
no center of control
cryptocurrency の "アドレス"
A Simple Cryptocurrency
GoofyCoin
double-spending attack
the main challenge in digital currency
ScroogeCoin
Central を信じないといけない問題
Programming Assignment